//收费代码和收费项目显示名称一一对应。前后端依赖代码识别收费项。前端手选收费不在这里列出，这里只有后端收费项代码。
//标识符不能以数字开头的，中文却可以的，数字开头的Key就必须用""包裹了。
//{}对象的key自动排序的，[]数组隐含有排序顺序。

import * as React from "react";
import {string} from "prop-types";

const PipelineFixedSteel = {
    "11": "Ф≤150 架空、埋地",
    "12": "Ф≤150",
    "21": "Ф＞150 架空、埋地",
    "22": "Ф＞150",
}
const PipelineFixedPE = {
    "11": "Ф＜150 架空、埋地",
    "12": "Ф＜150",
    "21": "Ф≥150 架空、埋地",
    "22": "Ф≥150",
}
/**要以 设备类别（第二层类别码） 来 查找 子设备品种的；
 * {非国家标准的 扩展分类!!} 用于做报告 选择模板/ 收费计算参数【最详细分类代码】。
 * 计费 在后端服务器中 可能用的。检验机构自己添加字段(业界统一定义)
 * */
const 管道收费项 ={
    "A": {
        "Prf": "GA1、GA2压力管道安装过程监督检验",
        ...PipelineFixedSteel
    },
    "C": {
        "Prf": "GC1、GC2压力管道安装过程监督检验",
        ...PipelineFixedSteel
    },
    "T": {
        "Prf": "GC3压力管道安装过程监督检验",
        ...PipelineFixedSteel
    },
    "B": {
        "Prf": "GB1、GB2压力管道安装过程监督检验",
        ...PipelineFixedSteel
    },
    "D": {
        "Prf": "GD1、GD2压力管道安装过程监督检验",
        ...PipelineFixedSteel
    },
    "E": {
        "Prf": "GA1、GA2压力管道全面检验",
        ...PipelineFixedSteel
    },
    "F": {
        "Prf": "GC1、GC2压力管道全面检验",
        ...PipelineFixedSteel
    },
    "G": {
        "Prf": "GC3压力管道全面检验",
        ...PipelineFixedSteel
    },
    "H": {
        "Prf": "GB1、GB2压力管道全面检验",
        ...PipelineFixedSteel
    },
    "J": {
        "Prf": "GD1、GD2压力管道全面检验",
        ...PipelineFixedSteel
    },
    "K": {
        "Prf": "PE管压力管道安装过程监督检验",
        ...PipelineFixedPE
    },
    "L": {
        "Prf": "PE管压力管道全面检验",
        ...PipelineFixedPE
    },
    "M": {
        "Prf": "GA1、GA2压力管道在线检验",
        ...PipelineFixedSteel
    },
    "N": {
        "Prf": "GC1、GC2压力管道在线检验",
        ...PipelineFixedSteel
    },
    "P": {
        "Prf": "GC3压力管道在线检验",
        ...PipelineFixedSteel
    },
    "Q": {
        "Prf": "GB1、GB2压力管道在线检验",
        ...PipelineFixedSteel
    },
    "R": {
        "Prf": "GD1、GD2压力管道在线检验",
        ...PipelineFixedSteel
    },
    "S": {
        "Prf": "PE管压力管道在线检验",
        ...PipelineFixedPE
    },
    "1": {
        //eqp.type='7' 特殊！压力管道元件制造质量监督检验 FEE_COD":"8110"
        "10": "压力管道元件制造质量监督检验",
    },
} as any;

const 电梯项目 ={
    "110": "电梯（乘客、载货）定期检验",
    "120": "杂物电梯定期检验",
    "130": "自动扶梯、自动人行道定期检验",
    "230": "进口电梯安全性监督检验",
    "240": "电梯制造过程监督检验",
    "250": "杂物电梯安装过程监督检验",
    "211": "电梯安装过程监督检验 X≤20（万元）",
    "212": "电梯安装过程监督检验20（万）＜X≤30（万）",
    "213": "电梯安装过程监督检验 30（万元）＜X",
    "260": "杂物电梯改造、修理过程监督检验",
    "220": "电梯改造、修理过程监督检验",
}
const BolierFixedA = {
    "1": "D≤2",
    "5": "2＜D≤4",
    "6": "4＜D≤6",
    "7": "6＜D≤10",
    "8": "10＜D≤20",
    "9": "D＞20",
}
const BolierFixedB = {
    "1": "D＜4",
    "2": "D≥4",
}
const BolierFixedC = {
    "1": "D≤1",
    "2": "1＜D≤2",
    "3": "2＜D≤4",
    "4": "4＜D≤6",
    "5": "6＜D≤10",
    "6": "10＜D≤20",
    "7": "D＞20",
}
const BolierFixedD = {
    "1": "D≤35",
    "2": "D≤75",
    "3": "D≤130",
    "4": "D≤220",
    "5": "D≤400",
    "6": "D≤670",
    "7": "D≤1000",
    "8": "D＞1000",
}
const 锅炉项目 ={
    "11": {
        "Prf": "工业锅炉制造过程监督检验",
        ...BolierFixedB
    },
    "21": {
        "Prf": "整组装锅炉安装过程监督检验",
        ...BolierFixedA
    },
    "22": {
        "Prf": "整组装锅炉改造、修理过程监督检验",
        ...BolierFixedA
    },
    "23": {
        "Prf": "散装锅炉安装过程监督检验",
        ...BolierFixedB
    },
    "24": {
        "Prf": "散装锅炉改造、修理过程监督检验",
        ...BolierFixedB
    },
    "31": {
        "Prf": "电站锅炉安装过程监督检验",
        "1": "D≤35",
        "2": "D≤75",
        "3": "D≤130",
        "4": "D≤220",
        "5": "D≤400",
        "6": "D≤670",
        "7": "D≤1000",
        "8": "D≤2000",
        "9": "D＞2000",
    },
    "32": {
        "0": "电站锅炉改造、修理过程监督检验"
    },
    "41": {
        "Prf": "工业锅炉外部检验",
        ...BolierFixedC
    },
    "42": {
        "Prf": "工业锅炉内部检验",
        ...BolierFixedC
    },
    "51": {
        "Prf": "电站锅炉外部检验",
        ...BolierFixedD
    },
    "52": {
        "Prf": "电站锅炉内部检验",
        ...BolierFixedD
    },
    "61": {
        "Prf": "垃圾焚烧发电锅炉外部检验",
        ...BolierFixedD
    },
    "62": {
        "Prf": "垃圾焚烧发电锅炉内部检验",
        ...BolierFixedD
    },
    "71": {
        "Prf": "工业锅炉化学清洗监督检验",
        ...BolierFixedC
    },
    "72": {
        "0": "电站锅炉化学清洗监督检验"
    },
    "80": {
        "0": "工业锅炉定型产品热效率测试收费标准"
    },
    "81": {
        "Prf": "工业锅炉定型产品热效率测试",
        ...BolierFixedC
    },
    "91": {
        "Prf": "蒸汽（热水）锅炉运行工况热效率简单测试",
        ...BolierFixedC
    },
    "92": {
        "Prf": "有机热载体锅炉运行工况热效率简单测试",
        ...BolierFixedC
    },
    "93": {
        "Prf": "蒸汽（热水）锅炉运行工况热效率详细测试",
        ...BolierFixedC
    },
    "94": {
        "Prf": "有机热载体锅炉运行工况热效率详细测试",
        ...BolierFixedC
    },
    "A1": {
        "Prf": "电站锅炉能效测试",
        ...BolierFixedD
    },


} as any;
const 加收收费项 = {
    "109": "检验费低于500元的按500元收取",
    "15": "居民自住的旧住宅楼加装电梯，安装过程监督检验减半收",
    "110": "电梯7层及以上，每层加收30元",
    "11": "特种电梯，加收30%",
    "7": "自动人行道使用长度大于30米时，每5米，加收10%",
    "6": "自动持梯提升高度大于6米时，每2米，加收10%",
    "120": "工业锅炉炉墙检验（D＞20），加收150+8(D-20)元",
    "119": "工业锅炉炉墙检验（10＜D≤20），每台加收150元",
    "118": "工业锅炉炉墙检验（6＜D≤10），每台加收90元",
    "117": "工业锅炉炉墙检验（4＜D≤6），每台加收70元",
    "116": "工业锅炉炉墙检验（2＜D≤4），每台加收50元",
    "115": "工业锅炉炉墙检验（1＜D≤2），每台加收30元",
    "114": "工业锅炉炉墙检验（D≤1），每台加收20元",
    "42": "需要进行工作装置测试，加收50%",
    "95": "容器检验部位>=6m时，全面检验加收20%",
    "96": "容器检验部位>=8m时，全面检验加收40%",
    "103": "在线检测仪进行安全阀在线排放试验，加20%",
    "102": "阀密封面直径进行现场检测计算的，按20%收",
    "99": "到使用单位进行离线安全阀校验的，上浮50%",
    "100": "进口安全阀在线校验按标准收费的200%收取",
    "105": "用实跳方式进行安全阀在线校验的，下浮50%",
    "47": "C级大型游乐设施，减收30%",
    "46": "A级大型游乐设施，加收30%",
    "44": "移动大型式游乐设施，加收50%",
    "45": "整机进口大型游乐设施，加收50%",
    "33": "整机进口起重机械，加收20%",
    "26": "防爆型起重机（含防爆性能检测），加收100%",
    "65": "冶金类起重机，加收30%",
    "16": "额定起重量大于等于40吨电动单梁，每加10吨加100元",
    "41": "行走式塔式起重机，加收20%",
    "40": "塔式起重机提升高度超过10米时，每2米或一节加收10%",
    "32": "双笼升降机按升降机收费标准，加收30%",
    "31": "高度大于20米的升降机每增加3米，加收50元",
    "34": "起重力矩50-10000吨米，大于50吨米部分每20吨米加5%",
    "121": "起重力矩>10000吨米，每50吨米加2.5%，50-10000基数",
    "37": "有集装箱吊具，加收10%",
    "35": "有抓斗，加收10%",
    "38": "臂架起重机，有副钩，加收20%",
    "39": "有副臂，加收20%",
    "36": "有起重吸盘，加收10%",
    "19": "有双司机室，加收10%",
    "18": "有双小车，加收10%",
    "25": "起升高度大于6米的起重机，每增加3米加收5%",
    "28": "非标起重机，加收20%",
    "21": "有抓斗，加收10%",
    "22": "有起重吸盘，加收10%",
    "24": "跨度大于等于22.5米的起重机，每增6米加收10%",
    "23": "有集装箱吊具，加收10%",
    "20": "桥（门）式等起重机，有副钩加收10%",
    "17": "起重量>=100吨桥门式、铁路、缆索起重，每10吨加100",
    "30": "架桥机、装卸桥和造船门试起重机加收80%",
    "29": "轨道/轮胎集装箱门式、岸边集装箱起重、卸船机加150%",
    "94": "起重机械监督检验-载荷试验，每台加300元",
}
const 厂车项目 ={
    "110": "厂（场）内机动车辆定期检验",
    "210": "厂（场）内机动车辆首次检验",
    "310": "内燃类非公路用旅游观光车辆定期检验",
    "320": "电动类非公路用旅游观光车辆定期检验",
    "410": "内燃类非公路用旅游观光车辆首次检验",
    "420": "电动类非公路用旅游观光车辆首次检验"
}
const VesselFixedA = {
    "1": "V＜1",
    "2": "1≤V＜10",
    "3": "10≤V＜20",
    "4": "20≤V＜50",
    "5": "50≤V＜100",
    "6": "V≥100",
}
const VesselFixedB = {
    "1": "V＜1",
    "2": "1≤V＜10",
    "3": "10≤V＜20",
    "4": "20≤V＜50",
    "5": "50≤V＜100",
    "6": "100≤V＜300",
    "7": "V≥300",
}
const VesselFixedC = {
    "1": "100≤MPa＜200",
    "2": "200≤MPa＜500",
    "3": "V≥500",
}
const VesselFixedD = {
    "1": "单人舱",
    "2": "双人舱",
    "3": "小型舱",
    "4": "中型舱",
    "5": "大型舱",
}
const 压力容器项 = {
    "11": {
        "0": "一、二、三类压力容器制造过程监督检验"
    },
    "12": {
        "0": "无缝钢瓶制造过程监督检验"
    },
    "13": {
        "0": "焊接钢瓶制造过程监督检验"
    },
    "14": {
        "0": "液化石油气钢瓶制造过程监督检验"
    },
    "15": {
        "0": "溶解乙炔钢瓶制造过程监督检验"
    },
    "17": {
        "0": "其它设备制造过程监督检验"
    },
    "21": {
        "0": "大型压力容器和球形容器安装过程监督检验"
    },
    "23": {
        "0": "液化气体储配站压力容器安装过程监督检验"
    },
    "25": {
        "0": "非大型压力容器安装过程监督检验"
    },
    "28": {
        "0": "超高压水晶釜安装过程监督检验"
    },
    "27": {
        "0": "超高压容器安装过程监督检验"
    },
    "24": {
        "0": "液化气体储配站压力容器改造、修理过程监督检验"
    },
    "26": {
        "0": "非大型压力容器改造、修理过程监督检验"
    },
    "22": {
        "0": "大型压力容器和球形容器改造、修理过程监督检验"
    },
    "31": {
        "Prf": "一类压力容器年度检查",
        ...VesselFixedA
    },
    "32": {
        "Prf": "一类压力容器定期检验",
        ...VesselFixedB
    },
    "33": {
        "Prf": "二类压力容器年度检查",
        ...VesselFixedA
    },
    "34": {
        "Prf": "二类压力容器定期检验",
        ...VesselFixedB
    },
    "35": {
        "Prf": "三类压力容器年度检查",
        ...VesselFixedA
    },
    "36": {
        "Prf": "三类压力容器定期检验",
        ...VesselFixedB
    },
    "41": {
        "Prf": "超高压容器全面检验",
        ...VesselFixedC
    },
    "42": {
        "Prf": "超高压容器年度检查",
        ...VesselFixedC
    },
    "51": {
        "Prf": "医用氧舱年度检验",
        ...VesselFixedD
    },
    "52": {
        "Prf": "医用氧舱全面检验",
        ...VesselFixedD
    },
    "53": {
        "0": "医用氧舱安装改造过程监督检验"
    },
    "61": {
        "0": "内外表面检验"
    },
    "65": {
        "0": "安全阀性能试验"
    },
    "63": {
        "0": "气密性试验"
    },
    "66": {
        "0": "液面计、紧急切断阀及其它附件检验"
    },
    "62": {
        "0": "耐压试验"
    },
    "64": {
        "0": "除锈喷漆"
    },
}
const ValveFixedA = {
    "1": "DN＜32",
    "2": "32≤DN＜40",
    "3": "40≤DN＜80",
    "4": "80≤DN＜150",
    "5": "150≤DN＜200",
    "6": "DN≥200",
}
const ValveFixedB = {
    "1": "DN＜32",
    "2": "32≤DN＜40",
    "3": "40≤DN＜80",
    "4": "80≤DN＜150",
    "5": "DN≥150"
}
const 安全阀项目 = {
    "11": {
        "Prf": "安全阀离线校验（Pg≤1.6）",
        ...ValveFixedA
    },
    "12": {
        "Prf": "安全阀离线校验（1.6＜Pg≤9.8）",
        ...ValveFixedA
    },
    "13": {
        "Prf": "安全阀离线校验（Pg>9.8）",
        ...ValveFixedA
    },
    "21": {
        "Prf": "安全阀在线校验（Pg＜1.6）",
        ...ValveFixedB
    },
    "22": {
        "Prf": "安全阀在线校验（1.6≤Pg＜3.8）",
        ...ValveFixedB
    },
    "23": {
        "Prf": "安全阀在线校验（3.8≤Pg＜5.0）",
        ...ValveFixedB
    },
    "24": {
        "Prf": "安全阀在线校验（5.0≤Pg＜7.0）",
        ...ValveFixedB
    },
    "25": {
        "Prf": "安全阀在线校验（Pg≥7.0）",
        ...ValveFixedB
    },
}
const 常压容器项 = {
    "310": "内外部检验",
    "360": "导静电测试",
    "330": "气密性试验",
    "340": "通气阀性能试验",
    "350": "其他附件检查" ,
    "320": "水压试验",
    "370": "盛水试验",
}
const 水质项目 = {
    "110": "浊度",
    "120": "硬度",
    "130": "PH值",
    "140": "电导率",
    "150": "酚酞碱度",
    "160": "全碱度（总碱度）" ,
    "170": "溶解固形物",
    "180": "磷酸根",
    "190": "油",
    "1A0": "全铁",
    "1B0": "亚硫酸根",
    "1C0": "相对碱度",
    "1D0": "氯离子",
    "1E0": "溶解氧",
    "1F0": "水垢全分析",
    "1G0": "树脂交换容量分析",
}
const 有机热载体项 = {
    "110": "运动黏度",
    "120": "酸值",
    "130": "残炭",
    "140": "闭口闪点",
    "150": "水分",
    "160": "5%低沸物馏出温度",
    "170": "水溶性酸碱",
    "180": "密度",
}
const 游乐项目 = {
    "110": "观览车类定期检验",
    "120": "飞行塔类定期检验",
    "130": "自控飞机类定期检验",
    "140": "架空游览车类定期检验",
    "150": "小火车类型定期检验",
    "170": "陀螺类定期检验",
    "190": "转马类定期检验",
    "200": "赛车类定期检验",
    "210": "碰碰车类",
    "221": "滑行车系列定期检验",
    "222": "滑道定期检验",
    "231": "峡谷漂流系列定期检验",
    "232": "水滑梯系列定期检验",
    "234": "碰碰船系列定期检验",
    "241": "高空蹦极系列定期检验",
    "242": "弹射蹦极系列定期检验",
    "243": "小蹦极系列定期检验",
    "244": "滑索系列定期检验",
    "245": "空中飞人系列定期检验",
    "246": "系留式观光气球系列定期检验",
    "311": "游乐设施安装过程监督检验X≤20（万元）",
    "312": "游乐设施安装过程监督检验20（万元）＜X≤100（万元）",
    "313": "游乐设施安装过程监督检验100（万元）＜X≤1000（万元）",
    "314": "游乐设施安装过程监督检验1000（万元）＜X",
    "320": "大型游乐设施改造、修理过程监督检验",
    "330": "大型游乐设施制造过程监督检验",
    "340": "进口大型游乐设施安全性能监督检验",
}
const CraneFixedA = {
    "1": "Gn＜5",
    "2": "5≤Gn＜10",
    "3": "10≤Gn＜16",
    "4": "16≤Gn＜25",
    "5": "25≤Gn＜40",
}
const CraneFixedB = {
    "1": "Gn＜5",
    "2": "5≤Gn＜10",
    "3": "10≤Gn＜16",
    "4": "16≤Gn＜25",
    "5": "25≤Gn＜40",
    "6": "40≤Gn＜60",
    "7": "60≤Gn＜100",
}
const CraneFixedC = {
    "1": "X≤50（万元）",
    "2": "50（万）＜X≤200（万）",
    "3": "200（万）＜X≤500（万）",
    "4": "500（万元）＜X",
}
const 起重项目 = {
    "11": {
        "Prf": "电动单梁（悬挂）起重机定期检验",
        ...CraneFixedA
    },
    "18": {
        "Prf": "电动葫芦门式起重机定期检验",
        ...CraneFixedB
    },
    "12": {
        "Prf": "桥门式、铁路、缆索起重机定期检验",
        ...CraneFixedB
    },
    "13": {
        "Prf": "轻小型、旋臂式起重机定期检验",
        ...CraneFixedA
    },
    "14": {
        "0": "升降机定期检验"
    },
    "17": {
        "1": "机械式停车设备定期检验，停车位小于20个",
        "2": "机械式停车设备定检，停车位超（含）20个部分减半收"
    },
    "21": {
        "0": "流动式起重机定期检验"
    },
    "22": {
        "0": "门座式起重机定期检验"
    },
    "25": {
        "0": "塔式起重机定期检验"
    },
    "37": {
        "Prf": "5吨下电动单梁（悬挂）起重机安装改造修理",
        ...CraneFixedC
    },
    "39": {
        "Prf": "5吨上电动单梁（悬挂）起重机安装改造修理",
        ...CraneFixedC
    },
    "31": {
        "Prf": "起重机械安装过程监督检验",
        ...CraneFixedC
    },
    "32": {
        "Prf": "起重机械改造、修理过程监督检验",
        ...CraneFixedC
    },
    "33": {
        "0": "进口起重机械安全性能监督检验"
    },
    "36": {
        "Prf": "2个车位机械式停车设备安装、改造、修理",
        ...CraneFixedC
    },
    "38": {
        "Prf": "2个以上车位机械式停车设备安装、改造、修理",
        ...CraneFixedC
    },
    "41": {
        "Prf": "桥门式、铁路起重机首检",
        ...CraneFixedB,
    },
    "42": {
        "0": "升降机首检"
    },
    "43": {
        "Prf": "电动单梁（悬挂）起重机首次检验",
        ...CraneFixedA
    },
    "51": {
        "0": "流动式起重机首检"
    },
    "52": {
        "0": "门座式起重机首检"
    },
    "53": {
        "0": "桅杆式起重机首检"
    },
    "54": {
        "0": "履带起重机首检"
    },
    "61": {
        "0": "起重机械安全监控管理系统定期（首次）检验"
    },
    "62": {
        "0": "起重机械安全监控管理系统监督检验"
    },
}
//第一个字符固定索引。非手动选的收费项，只能后端服务器计算。而手选收费项代码映射另外组织。
const FeeTitles = {
    "3": {
        "last": 0,
        "Vo": 电梯项目,
    },
    "2":{
        "last": 1,   //最后截取几个字符。 0表示全部都用上。 2表示最后面2个字符，其它字符用于二级索引。
        "Vo": 压力容器项,
    },
    "4":{
        "last": 1,
        "Vo": 起重项目,
    },
    "8":{
        "last": 2,   //最后截取几个字符。 0表示全部都用上。 2表示最后面2个字符，其它字符用于二级索引。
        "Vo": 管道收费项,
    },
    "1": {
        "last": 1,
        "Vo": 锅炉项目,
    },
    "5":{
        "last": 0,
        "Vo": 厂车项目,
    },
    "6":{
        "last": 0,
        "Vo": 游乐项目,
    },
    "F": {
        "last": 1,
        "Vo": 安全阀项目,
    },
    "S": {
        "last": 0,
        "Vo": 水质项目,
    },
    "T": {
        "last": 0,
        "Vo": 有机热载体项,
    },
    "Q": {
        "last": 0,
        "Vo": 常压容器项,
    },
    A: {
        ...加收收费项
    },
    //插入点在mod9的加收减免条款
    B: {
        "50": "棚户区电梯安装过程监督检验，收费全部减免",
        "127": "整机上岸的门座式起重机械按标准50%收",

    },
    J: {
        "110": "燃煤锅炉安全性能监督检验",
        "120": "燃油、气锅炉安全性能监督检验",
        "180": "进口承压类合格产品安全性能监督检验（锅炉）",
        "170": "其他设备安全性能监督检验",
        "130": "不锈钢、衬里多层容器安全性能监督检验",
        "150": "汽车罐车、铁路罐车安全性能监督检验",
        "160": "各类气瓶安全性能监督检验",
        "140": "一般压力容器安全性能监督检验",
        "190": "进口承压类合格产品安全性能监督检验（容器）",
        //进口承压类不合格产品
        "210": "燃煤锅炉安全性能监督检验",
        "220": "燃油、气锅炉安全性能监督检验",
        "270": "其他设备安全性能监督检验",
        "230": "不锈钢、衬里多层容器安全性能监督检验",
        "250": "汽车罐车、铁路罐车安全性能监督检验",
        "260": "各类气瓶安全性能监督检验",
        "240": "一般压力容器安全性能监督检验"
    }
}  as any;

/**将后端给的收费代码映射出收费项名称
 * 逻辑代码和数据配置的混合 边界模糊。
 * */
export function getFeeTitleBe(
    feecode: string
): string
{
    let chead= feecode[0];
    let objtyp= FeeTitles[chead];
    let codmpart= feecode.substring(1);
    let  middlestr : string;
    let  tailidx : string;
    if(objtyp.last!!){
        let idwidth=objtyp.last;
       if(idwidth===1){
           middlestr=codmpart.slice(0,-1);
           tailidx=codmpart.slice(-1);
       }
       else if(idwidth===2){
           middlestr=codmpart.slice(0,-2);
           tailidx=codmpart.slice(-2);
       }
       else if(idwidth===0){
           return objtyp.Vo[codmpart];
       }
    }else{
        return objtyp[codmpart];
    }
    //console.log("将后端给的收费代码映射出收费项名称1=",objtyp.Vo, middlestr!);
    let prf0obj=objtyp.Vo[middlestr!];
    //console.log("将后端给的收费代码映射出收费项名称2=",prf0obj,tailidx!);
    if(prf0obj.Prf!!)   return  prf0obj.Prf+prf0obj[tailidx!];
    else    return  prf0obj[tailidx!];
}

